518B - Tanya and Postcard - CodeForces Solution


greedy implementation strings *1400

Please click on ads to support us..

Python Code:

from string import ascii_letters 
from collections import Counter
from sys import stdin,stdout
input=stdin.readline
def print(*args, end='\n', sep=' ') -> None:
    stdout.write(sep.join(map(str, args)) + end)
 
mess=input().strip() ;news=input().strip() ;letters={} ; yay=0 ; ohbs=0  ; dic=Counter(mess)
for i in ascii_letters:
    letters[i]=0
 
for i in news:
    letters[i]+=1
 
for i in mess:
    if letters[i]>0:
        yay+=1
        letters[i]-=1
        dic[i]-=1
for i in mess:
    if i.islower():
        if dic[i]>0:
            dic[i]-=1
            if letters[i.upper()]>0:
                ohbs+=1
                letters[i.upper()]-=1
    else:
        if dic[i]>0:
            dic[i]-=1
            if letters[i.lower()]>0:
                ohbs+=1
                letters[i.lower()]-=1
 
 
 
 
print(yay,ohbs)

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define ll long long int
const ll lim = 1000000000 + 7;

char fun(char temp)
{
    if (temp >= 'a' && temp <= 'z')
    {
        return temp - 32;
    }
    return temp + 32;
}

int main()
{
    string s, t;
    cin >> s >> t;
    int n = s.size(), mn = t.size();
    map<char, int> need;
    map<char, int> h;
    map<int, int> m;

    for (int i = 0; i < mn; i++)
    {
        need[t[i]]++;
    }
    ll y = 0, w = 0;
    for (int i = 0; i < n; i++)
    {
        if (need[s[i]] >= 1)
        {
            y++;
            need[s[i]]--;
            m[i]++;
        }
    }
    for (int i = 0; i < n; i++)
    {
        if (m[i] == 0)
        {
            char c = fun(s[i]);
            if (need[c] > 0)
            {
                w++;
                need[c]--;
            }
        }
    }

    cout << y << " " << w << endl;

    return 0;
}


Comments

Submit
0 Comments
More Questions

1363A - Odd Selection
131B - Opposites Attract
490C - Hacking Cypher
158B - Taxi
41C - Email address
1373D - Maximum Sum on Even Positions
1574C - Slay the Dragon
621A - Wet Shark and Odd and Even
1395A - Boboniu Likes to Color Balls
1637C - Andrew and Stones
1334B - Middle Class
260C - Balls and Boxes
1554A - Cherry
11B - Jumping Jack
716A - Crazy Computer
644A - Parliament of Berland
1657C - Bracket Sequence Deletion
1657B - XY Sequence
1009A - Game Shopping
1657A - Integer Moves
230B - T-primes
630A - Again Twenty Five
1234D - Distinct Characters Queries
1183A - Nearest Interesting Number
1009E - Intercity Travelling
1637B - MEX and Array
224A - Parallelepiped
964A - Splits
1615A - Closing The Gap
4C - Registration System